#include "stdafx.h"
#include "RowNames.h"
#include "ColumnNames.h"
#include "TableParsing.h"

CTableParsing::CTableParsing(CScanner & scanner):
	m_scanner(scanner)
{
    Init();
}

CTableParsing::~CTableParsing() {}

CRow CTableParsing::GetRow(unsigned index) const
{
    if (index < 0 || index >= m_rows.size())
    {
        throw std::invalid_argument("Incorrect row index");
    }
    return m_rows[index];
}

CRow CTableParsing::GetRow(std::string const & rowName) const
{
    for (unsigned i = 0; i < m_rows.size(); ++i)
    {
        const CRow & row = m_rows[i];
        if (rowName == row.GetRowName())
        {
            return row;
        }
    }

	stringstream errorMsg;
	errorMsg << "Syntax error. Recheck code at line " << m_scanner.GetCurrLineIndex() << "!" << endl;

    throw std::invalid_argument(errorMsg.str());
}

void CTableParsing::Init()
{
    // rows
    CRow row1(RowNames::START);
    row1.AddCell(ColumnNames::PROGRAM, "ok");
    row1.AddCell(ColumnNames::MAIN_BLOCK, RowNames::MAIN_BLOCK_2_1);
    row1.AddCell(ColumnNames::MAIN, RowNames::MAIN_3_1);
    m_rows.push_back(row1);

    CRow row2(RowNames::MAIN_BLOCK_2_1);
    row2.AddCell(ColumnNames::CLASS_DELCS, RowNames::CLASS_DECLS_2_2);
    row2.AddCell(ColumnNames::CLASS_DECL, RowNames::CLASS_DECL_4_1);
    row2.AddCell(ColumnNames::CLASS, RowNames::CLASS_6_1);
    row2.AddCell(ColumnNames::END_OF_FILE, "R5"); 
    m_rows.push_back(row2);

    CRow row3(RowNames::MAIN_3_1);
    row3.AddCell(ColumnNames::L_FIGURE_BRACKET, RowNames::L_FIGURE_BRACKET_3_2);
    m_rows.push_back(row3);

    CRow row4(RowNames::L_FIGURE_BRACKET_3_2);
    row4.AddCell(ColumnNames::VAR_DECLS, RowNames::VAR_DECLS_3_3);
    row4.AddCell(ColumnNames::VAR_DECL, RowNames::VAR_DECL_7_1);
    row4.AddCell(ColumnNames::TYPE, RowNames::TYPE_9_1);
    row4.AddCell(ColumnNames::STANDART_TYPE, RowNames::STANDARD_TYPE_17_1);
    row4.AddCell(ColumnNames::DELIMETER, "R8");
    row4.AddCell(ColumnNames::ID, RowNames::ID_18_1);
    row4.AddCell(ColumnNames::ARRAY, RowNames::ARRAY_19_1);
    row4.AddCell(ColumnNames::INT, RowNames::INT_20_1);
    m_rows.push_back(row4);

    CRow row5(RowNames::VAR_DECLS_3_3);
    row5.AddCell(ColumnNames::DELIMETER, RowNames::DELIMETER_3_4);
    m_rows.push_back(row5);

    CRow row6(RowNames::DELIMETER_3_4);
    row6.AddCell(ColumnNames::STMTS, RowNames::STMTS_3_5);
    row6.AddCell(ColumnNames::STMT, RowNames::STMT_21_1);
    row6.AddCell(ColumnNames::L_FIGURE_BRACKET, RowNames::L_FIGURE_BRACKET_23_1);
    row6.AddCell(ColumnNames::R_FIGURE_BRACKET, "R22");
    row6.AddCell(ColumnNames::ID, RowNames::ID_27_1);
    row6.AddCell(ColumnNames::IF, RowNames::IF_24_1);
    row6.AddCell(ColumnNames::WHILE, RowNames::WHILE_25_1);
    row6.AddCell(ColumnNames::PRINT, RowNames::PRINT_26_1);
    m_rows.push_back(row6);

    CRow row7(RowNames::STMTS_3_5);
    row7.AddCell(ColumnNames::R_FIGURE_BRACKET, RowNames::R_FIGURE_BRACKET_3_6);
    m_rows.push_back(row7);

    CRow row8(RowNames::R_FIGURE_BRACKET_3_6);
    row8.AddCell(ColumnNames::CLASS, "R3");
    row8.AddCell(ColumnNames::END_OF_FILE, "R3");
    m_rows.push_back(row8);

    CRow row9(RowNames::CLASS_DECLS_2_2);
    row9.AddCell(ColumnNames::END_OF_FILE, "R2");
    m_rows.push_back(row9);

    CRow row10(RowNames::CLASS_DECL_4_1);
    row10.AddCell(ColumnNames::CLASS_DELCS, RowNames::CLASS_DECLS_4_2);
    row10.AddCell(ColumnNames::CLASS_DECL, RowNames::CLASS_DECL_4_1);
    row10.AddCell(ColumnNames::CLASS, RowNames::CLASS_6_1);
    row10.AddCell(ColumnNames::END_OF_FILE, "R5");
    m_rows.push_back(row10);

    CRow row11(RowNames::CLASS_DECLS_4_2);
    row11.AddCell(ColumnNames::END_OF_FILE, "R4");
    m_rows.push_back(row11);

    CRow row12(RowNames::CLASS_6_1);
    row12.AddCell(ColumnNames::ID, RowNames::ID_6_2);
    m_rows.push_back(row12);

    CRow row13(RowNames::ID_6_2);
    row13.AddCell(ColumnNames::L_FIGURE_BRACKET, RowNames::L_FIGURE_BRACKET_6_3);
    m_rows.push_back(row13);

    CRow row14(RowNames::L_FIGURE_BRACKET_6_3);
    row14.AddCell(ColumnNames::VAR_DECLS, RowNames::VAR_DECLS_6_4);
    row14.AddCell(ColumnNames::VAR_DECL, RowNames::VAR_DECL_7_1);
    row14.AddCell(ColumnNames::TYPE, RowNames::TYPE_9_1);
    row14.AddCell(ColumnNames::STANDART_TYPE, RowNames::STANDARD_TYPE_17_1);
    row14.AddCell(ColumnNames::DELIMETER, "R8");
    row14.AddCell(ColumnNames::ID, RowNames::ID_18_1);
    row14.AddCell(ColumnNames::ARRAY, RowNames::ARRAY_19_1);
    row14.AddCell(ColumnNames::INT, RowNames::INT_20_1);
    m_rows.push_back(row14);

    CRow row15(RowNames::VAR_DECLS_6_4);
    row15.AddCell(ColumnNames::DELIMETER, RowNames::DELIMETER_6_5);
    m_rows.push_back(row15);

    CRow row16(RowNames::DELIMETER_6_5);
    row16.AddCell(ColumnNames::CONSTRUCTOR, RowNames::CONSTRUCTOR_6_6);
    m_rows.push_back(row16);

    CRow row17(RowNames::CONSTRUCTOR_6_6);
    row17.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_6_7);
    m_rows.push_back(row17);

    CRow row18(RowNames::L_ROUND_BRACKET_6_7);
    row18.AddCell(ColumnNames::FORMAL_LIST, RowNames::FORMAL_LIST_6_8);
    row18.AddCell(ColumnNames::TYPE, RowNames::TYPE_13_1);
    row18.AddCell(ColumnNames::STANDART_TYPE, RowNames::STANDARD_TYPE_17_1);
    row18.AddCell(ColumnNames::ID, RowNames::ID_18_1);
    row18.AddCell(ColumnNames::R_ROUND_BRACKET, "R14");
    row18.AddCell(ColumnNames::ARRAY, RowNames::ARRAY_19_1);
    row18.AddCell(ColumnNames::INT, RowNames::INT_20_1);
    m_rows.push_back(row18);

    CRow row19(RowNames::FORMAL_LIST_6_8);
    row19.AddCell(ColumnNames::R_ROUND_BRACKET, RowNames::R_ROUND_BRACKET_6_9);
    m_rows.push_back(row19);

    CRow row20(RowNames::R_ROUND_BRACKET_6_9);
    row20.AddCell(ColumnNames::L_FIGURE_BRACKET, RowNames::L_FIGURE_BRACKET_6_10);
    m_rows.push_back(row20);

    CRow row21(RowNames::L_FIGURE_BRACKET_6_10);
    row21.AddCell(ColumnNames::STMTS, RowNames::STMTS_6_11);
    row21.AddCell(ColumnNames::STMT, RowNames::STMT_21_1);
    row21.AddCell(ColumnNames::L_FIGURE_BRACKET, RowNames::L_FIGURE_BRACKET_23_1);
    row21.AddCell(ColumnNames::R_FIGURE_BRACKET, "R22");
    row21.AddCell(ColumnNames::ID, RowNames::ID_27_1);
    row21.AddCell(ColumnNames::IF, RowNames::IF_24_1);
    row21.AddCell(ColumnNames::WHILE, RowNames::WHILE_25_1);
    row21.AddCell(ColumnNames::PRINT, RowNames::PRINT_26_1);
    m_rows.push_back(row21);

    CRow row22(RowNames::STMTS_6_11);
    row22.AddCell(ColumnNames::R_FIGURE_BRACKET, RowNames::R_FIGURE_BRACKET_6_12);
    m_rows.push_back(row22);

    CRow row23(RowNames::R_FIGURE_BRACKET_6_12);
    row23.AddCell(ColumnNames::METHOD_DECLS, RowNames::METHOD_DECLS_6_13);
    row23.AddCell(ColumnNames::METHOD_DECL, RowNames::METHOD_DECL_10_1);
    row23.AddCell(ColumnNames::R_FIGURE_BRACKET, "R11");
    row23.AddCell(ColumnNames::FUNCTION, RowNames::FUNCTION_12_1);
    m_rows.push_back(row23);

    CRow row24(RowNames::METHOD_DECLS_6_13);
    row24.AddCell(ColumnNames::R_FIGURE_BRACKET, RowNames::R_FIGURE_BRACKET_6_14);
    m_rows.push_back(row24);

    CRow row25(RowNames::R_FIGURE_BRACKET_6_14);
    row25.AddCell(ColumnNames::CLASS, "R6");
    row25.AddCell(ColumnNames::END_OF_FILE, "R6");
    m_rows.push_back(row25);

    CRow row26(RowNames::VAR_DECL_7_1);
    row26.AddCell(ColumnNames::VAR_DECLS, RowNames::VAR_DECLS_7_2);
    row26.AddCell(ColumnNames::VAR_DECL, RowNames::VAR_DECL_7_1);
    row26.AddCell(ColumnNames::TYPE, RowNames::TYPE_9_1);
    row26.AddCell(ColumnNames::STANDART_TYPE, RowNames::STANDARD_TYPE_17_1);
    row26.AddCell(ColumnNames::DELIMETER, "R8");
    row26.AddCell(ColumnNames::ID, RowNames::ID_18_1);
    row26.AddCell(ColumnNames::ARRAY, RowNames::ARRAY_19_1);
    row26.AddCell(ColumnNames::INT, RowNames::INT_20_1);
    m_rows.push_back(row26);

    CRow row27(RowNames::VAR_DECLS_7_2);
    row27.AddCell(ColumnNames::DELIMETER, "R7");
    m_rows.push_back(row27);

    CRow row28(RowNames::TYPE_9_1);
    row28.AddCell(ColumnNames::ID, RowNames::ID_9_2);
    m_rows.push_back(row28);

    CRow row29(RowNames::ID_9_2);
    row29.AddCell(ColumnNames::SEMICOLON, RowNames::SEMICOLON_9_3);
    m_rows.push_back(row29);

    CRow row30(RowNames::SEMICOLON_9_3);
    row30.AddCell(ColumnNames::DELIMETER, "R9");
    row30.AddCell(ColumnNames::ID, "R9");
    row30.AddCell(ColumnNames::ARRAY, "R9");
    row30.AddCell(ColumnNames::INT, "R9");
    m_rows.push_back(row30);

    CRow row31(RowNames::METHOD_DECL_10_1);
    row31.AddCell(ColumnNames::METHOD_DECLS, RowNames::METHOD_DECLS_10_2);
    row31.AddCell(ColumnNames::METHOD_DECL, RowNames::METHOD_DECL_10_1);
    row31.AddCell(ColumnNames::R_FIGURE_BRACKET, "R11");
    row31.AddCell(ColumnNames::FUNCTION, RowNames::FUNCTION_12_1);
    m_rows.push_back(row31);

    CRow row32(RowNames::METHOD_DECLS_10_2);
    row32.AddCell(ColumnNames::R_FIGURE_BRACKET, "R10");
    m_rows.push_back(row32);

    CRow row33(RowNames::FUNCTION_12_1);
    row33.AddCell(ColumnNames::ID, RowNames::ID_12_2);
    m_rows.push_back(row33);

    CRow row34(RowNames::ID_12_2);
    row34.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_12_3);
    m_rows.push_back(row34);

    CRow row35(RowNames::L_ROUND_BRACKET_12_3);
    row35.AddCell(ColumnNames::FORMAL_LIST, RowNames::FORMAL_LIST_12_4);
    row35.AddCell(ColumnNames::TYPE, RowNames::TYPE_13_1);
    row35.AddCell(ColumnNames::STANDART_TYPE, RowNames::STANDARD_TYPE_17_1);
    row35.AddCell(ColumnNames::ID, RowNames::ID_18_1);
    row35.AddCell(ColumnNames::R_ROUND_BRACKET, "R14");
    row35.AddCell(ColumnNames::ARRAY, RowNames::ARRAY_19_1);
    row35.AddCell(ColumnNames::INT, RowNames::INT_20_1);
    m_rows.push_back(row35);

    CRow row36(RowNames::FORMAL_LIST_12_4);
    row36.AddCell(ColumnNames::R_ROUND_BRACKET, RowNames::R_ROUND_BRACKET_12_5);
    m_rows.push_back(row36);

    CRow row37(RowNames::R_ROUND_BRACKET_12_5);
    row37.AddCell(ColumnNames::COLON, RowNames::COLON_12_6);
    m_rows.push_back(row37);

    CRow row38(RowNames::COLON_12_6);
    row38.AddCell(ColumnNames::TYPE, RowNames::TYPE_12_7);
    row38.AddCell(ColumnNames::STANDART_TYPE, RowNames::STANDARD_TYPE_17_1);
    row38.AddCell(ColumnNames::ID, RowNames::ID_18_1);
    row38.AddCell(ColumnNames::ARRAY, RowNames::ARRAY_19_1);
    row38.AddCell(ColumnNames::INT, RowNames::INT_20_1);
    m_rows.push_back(row38);

    CRow row39(RowNames::TYPE_12_7);
    row39.AddCell(ColumnNames::L_FIGURE_BRACKET, RowNames::L_FIGURE_BRACKET_12_8);
    m_rows.push_back(row39);

    CRow row40(RowNames::L_FIGURE_BRACKET_12_8);
    row40.AddCell(ColumnNames::VAR_DECLS, RowNames::VAR_DECLS_12_9);
    row40.AddCell(ColumnNames::VAR_DECL, RowNames::VAR_DECL_7_1);
    row40.AddCell(ColumnNames::TYPE, RowNames::TYPE_9_1);
    row40.AddCell(ColumnNames::STANDART_TYPE, RowNames::STANDARD_TYPE_17_1);
    row40.AddCell(ColumnNames::DELIMETER, "R8");
    row40.AddCell(ColumnNames::ID, RowNames::ID_18_1);
    row40.AddCell(ColumnNames::ARRAY, RowNames::ARRAY_19_1);
    row40.AddCell(ColumnNames::INT, RowNames::INT_20_1);
    m_rows.push_back(row40);

    CRow row41(RowNames::VAR_DECLS_12_9);
    row41.AddCell(ColumnNames::DELIMETER, RowNames::DELIMETER_12_10);
    m_rows.push_back(row41);

    CRow row42(RowNames::DELIMETER_12_10);
    row42.AddCell(ColumnNames::STMTS, RowNames::STMTS_12_11);
    row42.AddCell(ColumnNames::STMT, RowNames::STMT_21_1);
    row42.AddCell(ColumnNames::L_FIGURE_BRACKET, RowNames::L_FIGURE_BRACKET_23_1);
    row42.AddCell(ColumnNames::R_FIGURE_BRACKET, "R22");
    row42.AddCell(ColumnNames::ID,  RowNames::ID_27_1);
    row42.AddCell(ColumnNames::RETURN, "R22");
    row42.AddCell(ColumnNames::IF, RowNames::IF_24_1);
    row42.AddCell(ColumnNames::WHILE, RowNames::WHILE_25_1);
    row42.AddCell(ColumnNames::PRINT, RowNames::PRINT_26_1);
    m_rows.push_back(row42);

    CRow row43(RowNames::STMTS_12_11);
    row43.AddCell(ColumnNames::RETURN, RowNames::RETURN_12_12);
    m_rows.push_back(row43);

    CRow row44(RowNames::RETURN_12_12);
    row44.AddCell(ColumnNames::ARG, RowNames::ARG_12_13);
	row44.AddCell(ColumnNames::ID, RowNames::ID_63_1);
	row44.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_64_1);
    m_rows.push_back(row44);

	CRow row45(RowNames::ARG_12_13);
    row45.AddCell(ColumnNames::SEMICOLON, RowNames::SEMICOLON_12_14);
    m_rows.push_back(row45);

    CRow row46(RowNames::SEMICOLON_12_14);
    row46.AddCell(ColumnNames::R_FIGURE_BRACKET, RowNames::R_FIGURE_BRACKET_12_15);
    m_rows.push_back(row46);

    CRow row47(RowNames::R_FIGURE_BRACKET_12_15);
    row47.AddCell(ColumnNames::R_FIGURE_BRACKET, "R12");
    row47.AddCell(ColumnNames::FUNCTION, "R12");
    m_rows.push_back(row47);

    CRow row48(RowNames::TYPE_13_1);
    row48.AddCell(ColumnNames::ID, RowNames::ID_13_2);
    m_rows.push_back(row48);

    CRow row49(RowNames::ID_13_2);
    row49.AddCell(ColumnNames::FORMAL_REST, RowNames::FORMAL_REST_13_3);
    row49.AddCell(ColumnNames::R_ROUND_BRACKET, "R16");
    row49.AddCell(ColumnNames::COMMA, RowNames::COMMA_15_1);
    m_rows.push_back(row49);

    CRow row50(RowNames::FORMAL_REST_13_3);
    row50.AddCell(ColumnNames::R_ROUND_BRACKET, "R13");
    m_rows.push_back(row50);

    CRow row51(RowNames::COMMA_15_1);
    row51.AddCell(ColumnNames::TYPE, RowNames::TYPE_15_2);
    row51.AddCell(ColumnNames::STANDART_TYPE, RowNames::STANDARD_TYPE_17_1);
    row51.AddCell(ColumnNames::ID, RowNames::ID_18_1);
    row51.AddCell(ColumnNames::ARRAY, RowNames::ARRAY_19_1);
    row51.AddCell(ColumnNames::INT, RowNames::INT_20_1);
    m_rows.push_back(row51);

    CRow row52(RowNames::TYPE_15_2);
    row52.AddCell(ColumnNames::ID, RowNames::ID_15_3);
    m_rows.push_back(row52);

    CRow row53(RowNames::ID_15_3);
    row53.AddCell(ColumnNames::FORMAL_REST, RowNames::FORMAT_REST_15_4);
    row53.AddCell(ColumnNames::R_ROUND_BRACKET, "R16");
    row53.AddCell(ColumnNames::COMMA, RowNames::COMMA_15_1);
    m_rows.push_back(row53);

    CRow row54(RowNames::FORMAT_REST_15_4);
    row54.AddCell(ColumnNames::R_ROUND_BRACKET, "R15");
    m_rows.push_back(row54);

    CRow row55(RowNames::STANDARD_TYPE_17_1);
    row55.AddCell(ColumnNames::L_FIGURE_BRACKET, "R17");
    row55.AddCell(ColumnNames::ID, "R17");
    m_rows.push_back(row55);

    CRow row56(RowNames::ID_18_1);
    row56.AddCell(ColumnNames::L_FIGURE_BRACKET, "R18");
    row56.AddCell(ColumnNames::ID, "R18");
    m_rows.push_back(row56);

    CRow row57(RowNames::ARRAY_19_1);
    row57.AddCell(ColumnNames::L_FIGURE_BRACKET, "R19");
    row57.AddCell(ColumnNames::ID, "R19");
	row57.AddCell(ColumnNames::L_ROUND_BRACKET, "R19");
    m_rows.push_back(row57);

    CRow row58(RowNames::INT_20_1);
    row58.AddCell(ColumnNames::L_FIGURE_BRACKET, "R20");
    row58.AddCell(ColumnNames::ID, "R20");
	row58.AddCell(ColumnNames::L_ROUND_BRACKET, "R20");
    m_rows.push_back(row58);

    CRow row59(RowNames::STMT_21_1);
    row59.AddCell(ColumnNames::STMTS, RowNames::STMTS_21_2);
    row59.AddCell(ColumnNames::STMT, RowNames::STMT_21_1);
    row59.AddCell(ColumnNames::L_FIGURE_BRACKET, RowNames::L_FIGURE_BRACKET_23_1);
    row59.AddCell(ColumnNames::R_FIGURE_BRACKET, "R22");
    row59.AddCell(ColumnNames::ID, RowNames::ID_27_1);
    row59.AddCell(ColumnNames::RETURN, "R22");
    row59.AddCell(ColumnNames::IF, RowNames::IF_24_1);
    row59.AddCell(ColumnNames::WHILE, RowNames::WHILE_25_1);
    row59.AddCell(ColumnNames::PRINT, RowNames::PRINT_26_1);
    m_rows.push_back(row59);

    CRow row60(RowNames::STMTS_21_2);
    row60.AddCell(ColumnNames::L_FIGURE_BRACKET, "R21");
    row60.AddCell(ColumnNames::R_FIGURE_BRACKET, "R21");
    row60.AddCell(ColumnNames::ID, "R21");
    row60.AddCell(ColumnNames::RETURN, "R21");
    row60.AddCell(ColumnNames::IF, "R21");
    row60.AddCell(ColumnNames::WHILE, "R21");
    row60.AddCell(ColumnNames::PRINT, "R21");
    m_rows.push_back(row60);

    CRow row61(RowNames::L_FIGURE_BRACKET_23_1);
    row61.AddCell(ColumnNames::STMTS, RowNames::STMTS_23_2);
    row61.AddCell(ColumnNames::STMT, RowNames::STMT_21_1);
    row61.AddCell(ColumnNames::L_FIGURE_BRACKET, RowNames::L_FIGURE_BRACKET_23_1);
    row61.AddCell(ColumnNames::R_FIGURE_BRACKET, "R22");
    row61.AddCell(ColumnNames::ID, RowNames::ID_27_1);
    row61.AddCell(ColumnNames::IF, RowNames::IF_24_1);
    row61.AddCell(ColumnNames::WHILE, RowNames::WHILE_25_1);
    row61.AddCell(ColumnNames::PRINT, RowNames::PRINT_26_1);
    m_rows.push_back(row61);

    CRow row62(RowNames::STMTS_23_2);
    row62.AddCell(ColumnNames::R_FIGURE_BRACKET, RowNames::R_FIGURE_BRACKET_23_3);
    m_rows.push_back(row62);

    CRow row63(RowNames::R_FIGURE_BRACKET_23_3);
    row63.AddCell(ColumnNames::L_FIGURE_BRACKET, "R23");
    row63.AddCell(ColumnNames::R_FIGURE_BRACKET, "R23");
    row63.AddCell(ColumnNames::ID, "R23");
    row63.AddCell(ColumnNames::RETURN, "R23");
    row63.AddCell(ColumnNames::IF, "R23");
    row63.AddCell(ColumnNames::WHILE, "R23");
    row63.AddCell(ColumnNames::PRINT, "R23");
	row63.AddCell(ColumnNames::ELSE, "R23");
    m_rows.push_back(row63);

    CRow row64(RowNames::IF_24_1);
    row64.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_24_2);
    m_rows.push_back(row64);

    CRow row65(RowNames::L_ROUND_BRACKET_24_2);
    row65.AddCell(ColumnNames::LOGIC_EXP, RowNames::LOGIC_EXP_24_3);
    row65.AddCell(ColumnNames::LOGIC_EXP_A, RowNames::LOGIC_EXP_A_30_1_SUB_33_1);
    row65.AddCell(ColumnNames::LOGIC_EXP_C, RowNames::LOGIC_EXP_C_34_1_SUB_38_1);
	row65.AddCell(ColumnNames::LOGIC_EXP_ARG, RowNames::LOGIC_EXP_ARG_39_1);
	row65.AddCell(ColumnNames::ID, RowNames::ID_65_1);
	row65.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_66_1);
    row65.AddCell(ColumnNames::NOT, RowNames::NOT_61_1);
    m_rows.push_back(row65);

    CRow row66(RowNames::LOGIC_EXP_24_3);
    row66.AddCell(ColumnNames::R_ROUND_BRACKET, RowNames::R_ROUND_BRACKET_24_4);
    m_rows.push_back(row66);

    CRow row67(RowNames::R_ROUND_BRACKET_24_4);
    row67.AddCell(ColumnNames::STMT, RowNames::STMT_24_5);
    row67.AddCell(ColumnNames::L_FIGURE_BRACKET, RowNames::L_FIGURE_BRACKET_23_1);
    row67.AddCell(ColumnNames::ID, RowNames::ID_27_1);
    row67.AddCell(ColumnNames::IF, RowNames::IF_24_1);
    row67.AddCell(ColumnNames::WHILE, RowNames::WHILE_25_1);
    row67.AddCell(ColumnNames::PRINT, RowNames::PRINT_26_1);
    m_rows.push_back(row67);

    CRow row68(RowNames::STMT_24_5);
    row68.AddCell(ColumnNames::ELSE, RowNames::ELSE_24_6);
    m_rows.push_back(row68);

    CRow row69(RowNames::ELSE_24_6);
    row69.AddCell(ColumnNames::STMT, RowNames::STMT_24_7);
    row69.AddCell(ColumnNames::L_FIGURE_BRACKET, RowNames::L_FIGURE_BRACKET_23_1);
    row69.AddCell(ColumnNames::ID, RowNames::ID_27_1);
    row69.AddCell(ColumnNames::IF, RowNames::IF_24_1);
    row69.AddCell(ColumnNames::WHILE, RowNames::WHILE_25_1);
    row69.AddCell(ColumnNames::PRINT, RowNames::PRINT_26_1);
    m_rows.push_back(row69);

    CRow row70(RowNames::STMT_24_7);
    row70.AddCell(ColumnNames::L_FIGURE_BRACKET, "R24");
    row70.AddCell(ColumnNames::R_FIGURE_BRACKET, "R24");
    row70.AddCell(ColumnNames::ID, "R24");
    row70.AddCell(ColumnNames::RETURN, "R24");
    row70.AddCell(ColumnNames::IF, "R24");
    row70.AddCell(ColumnNames::WHILE, "R24");
    row70.AddCell(ColumnNames::PRINT, "R24");
	row70.AddCell(ColumnNames::ELSE, "R24");
    m_rows.push_back(row70);

    CRow row71(RowNames::WHILE_25_1);
    row71.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_25_2);
    m_rows.push_back(row71);

    CRow row72(RowNames::L_ROUND_BRACKET_25_2);
    row72.AddCell(ColumnNames::LOGIC_EXP, RowNames::LOGIC_EXP_25_3);
    row72.AddCell(ColumnNames::LOGIC_EXP_A, RowNames::LOGIC_EXP_A_30_1_SUB_33_1);
    row72.AddCell(ColumnNames::LOGIC_EXP_C, RowNames::LOGIC_EXP_C_34_1_SUB_38_1);
	row72.AddCell(ColumnNames::LOGIC_EXP_ARG, RowNames::LOGIC_EXP_ARG_39_1);
	row72.AddCell(ColumnNames::ID, RowNames::ID_65_1);
	row72.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_66_1);
    row72.AddCell(ColumnNames::NOT, RowNames::NOT_61_1);
    m_rows.push_back(row72);

    CRow row73(RowNames::LOGIC_EXP_25_3);
    row73.AddCell(ColumnNames::R_ROUND_BRACKET, RowNames::R_ROUND_BRACKET_25_4);
    m_rows.push_back(row73);

    CRow row74(RowNames::R_ROUND_BRACKET_25_4);
    row74.AddCell(ColumnNames::STMT, RowNames::STMT_25_5);
    row74.AddCell(ColumnNames::L_FIGURE_BRACKET, RowNames::L_FIGURE_BRACKET_23_1);
    row74.AddCell(ColumnNames::ID, RowNames::ID_27_1);
    row74.AddCell(ColumnNames::IF, RowNames::IF_24_1);
    row74.AddCell(ColumnNames::WHILE, RowNames::WHILE_25_1);
    row74.AddCell(ColumnNames::PRINT, RowNames::PRINT_26_1);
    m_rows.push_back(row74);

    CRow row75(RowNames::STMT_25_5);
    row75.AddCell(ColumnNames::L_FIGURE_BRACKET, "R25");
    row75.AddCell(ColumnNames::R_FIGURE_BRACKET, "R25");
    row75.AddCell(ColumnNames::ID, "R25");
    row75.AddCell(ColumnNames::RETURN, "R25");
    row75.AddCell(ColumnNames::IF, "R25");
    row75.AddCell(ColumnNames::WHILE, "R25");
    row75.AddCell(ColumnNames::PRINT, "R25");
	row75.AddCell(ColumnNames::ELSE, "R25");
    m_rows.push_back(row75);

    CRow row76(RowNames::PRINT_26_1);
    row76.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_26_2);
    m_rows.push_back(row76);

    CRow row77(RowNames::L_ROUND_BRACKET_26_2);
    row77.AddCell(ColumnNames::EXP, RowNames::EXP_26_3_SUB_40_1);
    row77.AddCell(ColumnNames::EXP_A, RowNames::EXP_A_41_1_SUB_45_1);
    row77.AddCell(ColumnNames::EXP_C, RowNames::EXP_C_46_1);
    row77.AddCell(ColumnNames::EXP_D, RowNames::EXP_D_48_1);
    row77.AddCell(ColumnNames::ID, RowNames::ID_50_1);
    row77.AddCell(ColumnNames::THIS, RowNames::THIS_62_1);
    row77.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_49_1);
    row77.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_47_1);
    row77.AddCell(ColumnNames::SUB, RowNames::SUB_42_1);
    m_rows.push_back(row77);

    CRow row78(RowNames::EXP_26_3_SUB_40_1);
    row78.AddCell(ColumnNames::OP_A, RowNames::OP_A_40_2);
    row78.AddCell(ColumnNames::R_ROUND_BRACKET, RowNames::R_ROUND_BRACKET_26_4);
    row78.AddCell(ColumnNames::SUB, RowNames::SUB_44_1);
    row78.AddCell(ColumnNames::ADD, RowNames::ADD_43_1);
    m_rows.push_back(row78);

    CRow row79(RowNames::R_ROUND_BRACKET_26_4);
    row79.AddCell(ColumnNames::SEMICOLON, RowNames::SEMICOLON_26_5);
    m_rows.push_back(row79);

    CRow row80(RowNames::SEMICOLON_26_5);
    row80.AddCell(ColumnNames::L_FIGURE_BRACKET, "R26");
    row80.AddCell(ColumnNames::R_FIGURE_BRACKET, "R26");
    row80.AddCell(ColumnNames::ID, "R26");
    row80.AddCell(ColumnNames::RETURN, "R26");
    row80.AddCell(ColumnNames::IF, "R26");
    row80.AddCell(ColumnNames::WHILE, "R26");
    row80.AddCell(ColumnNames::PRINT, "R26");
	row80.AddCell(ColumnNames::ELSE, "R26");
    m_rows.push_back(row80);

    CRow row81(RowNames::ID_27_1);
    row81.AddCell(ColumnNames::ASSIGN, RowNames::ASSIGN_27_2);
    m_rows.push_back(row81);

    CRow row82(RowNames::ASSIGN_27_2);
    row82.AddCell(ColumnNames::ASSIGNEMENT_RIGHT_PART, RowNames::ASSIGNEMENT_RIGHT_PART_27_3);
    row82.AddCell(ColumnNames::EXP, RowNames::EXP_28_1_SUB_40_1);
    row82.AddCell(ColumnNames::EXP_A, RowNames::EXP_A_41_1_SUB_45_1);
    row82.AddCell(ColumnNames::EXP_C, RowNames::EXP_C_46_1);
    row82.AddCell(ColumnNames::EXP_D, RowNames::EXP_D_48_1);
    row82.AddCell(ColumnNames::ID, RowNames::ID_50_1);
    row82.AddCell(ColumnNames::THIS, RowNames::THIS_62_1);
    row82.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_49_1);
    row82.AddCell(ColumnNames::NEW, RowNames::NEW_29_1);
    row82.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_47_1);
    row82.AddCell(ColumnNames::SUB, RowNames::SUB_42_1);
    m_rows.push_back(row82);

    CRow row83(RowNames::EXP_28_1_SUB_40_1);
    row83.AddCell(ColumnNames::OP_A, RowNames::OP_A_40_2);
    row83.AddCell(ColumnNames::SEMICOLON, "R28");
    row83.AddCell(ColumnNames::SUB, RowNames::SUB_44_1);
    row83.AddCell(ColumnNames::ADD, RowNames::ADD_43_1);
    m_rows.push_back(row83);

    CRow row84(RowNames::ASSIGNEMENT_RIGHT_PART_27_3);
    row84.AddCell(ColumnNames::SEMICOLON, RowNames::SEMICOLON_27_4);
    m_rows.push_back(row84);

    CRow row85(RowNames::SEMICOLON_27_4);
    row85.AddCell(ColumnNames::L_FIGURE_BRACKET, "R27");
    row85.AddCell(ColumnNames::R_FIGURE_BRACKET, "R27");
    row85.AddCell(ColumnNames::ID, "R27");
    row85.AddCell(ColumnNames::RETURN, "R27");
    row85.AddCell(ColumnNames::IF, "R27");
    row85.AddCell(ColumnNames::WHILE, "R27");
    row85.AddCell(ColumnNames::PRINT, "R27");
	row85.AddCell(ColumnNames::ELSE, "R27");
    m_rows.push_back(row85);

    CRow row86(RowNames::NEW_29_1);
    row86.AddCell(ColumnNames::STANDART_TYPE, RowNames::STANDARD_TYPE_58_1);
    row86.AddCell(ColumnNames::NEW_ELEMENT, RowNames::NEW_ELEMENT_29_2);
    row86.AddCell(ColumnNames::ID, RowNames::ID_57_1);
    row86.AddCell(ColumnNames::ARRAY, RowNames::ARRAY_19_1);
    row86.AddCell(ColumnNames::INT, RowNames::INT_20_1);
    m_rows.push_back(row86);

    CRow row87(RowNames::NEW_ELEMENT_29_2);
    row87.AddCell(ColumnNames::SEMICOLON, "R29");
    m_rows.push_back(row87);

    CRow row88(RowNames::ID_57_1);
    row88.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_57_2);
    m_rows.push_back(row88);

    CRow row89(RowNames::L_ROUND_BRACKET_57_2);
    row89.AddCell(ColumnNames::ARG, RowNames::ARG_53_1);
    row89.AddCell(ColumnNames::EXP_LIST, RowNames::EXP_LIST_57_3);
	row89.AddCell(ColumnNames::ID, RowNames::ID_63_1);
    row89.AddCell(ColumnNames::R_ROUND_BRACKET, "R54");
	row89.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_64_1);
    m_rows.push_back(row89);

    CRow row90(RowNames::EXP_LIST_57_3);
    row90.AddCell(ColumnNames::R_ROUND_BRACKET, RowNames::R_ROUND_BRACKET_57_4);
    m_rows.push_back(row90);

    CRow row91(RowNames::R_ROUND_BRACKET_57_4);
    row91.AddCell(ColumnNames::SEMICOLON, "R57");
    m_rows.push_back(row91);

    CRow row92(RowNames::STANDARD_TYPE_58_1);
    row92.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_58_2);
    m_rows.push_back(row92);

    CRow row93(RowNames::L_ROUND_BRACKET_58_2);
    row93.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_58_3);
    m_rows.push_back(row93);

    CRow row94(RowNames::INT_LITERAL_58_3);
    row94.AddCell(ColumnNames::R_ROUND_BRACKET, RowNames::R_ROUND_BRACKET_58_4);
    m_rows.push_back(row94);

    CRow row95(RowNames::R_ROUND_BRACKET_58_4);
    row95.AddCell(ColumnNames::SEMICOLON, "R58");
    m_rows.push_back(row95);

    CRow row96(RowNames::LOGIC_EXP_A_30_1_SUB_33_1);
    row96.AddCell(ColumnNames::LOGIC_EXP_B, RowNames::LOGIC_EXP_B_30_2);
    row96.AddCell(ColumnNames::LOGIC_OP, RowNames::LOGIC_OP_33_2);
    row96.AddCell(ColumnNames::R_ROUND_BRACKET, "R32");
    row96.AddCell(ColumnNames::EQUAL, RowNames::EQUAL_31_1);
    row96.AddCell(ColumnNames::LESS, RowNames::LESS_36_1);
    row96.AddCell(ColumnNames::OR, RowNames::OR_35_1);
    row96.AddCell(ColumnNames::LESSOREQUAL, RowNames::LESSOREQUAL_37_1);
    m_rows.push_back(row96);

    CRow row97(RowNames::LOGIC_EXP_B_30_2);
    row97.AddCell(ColumnNames::R_ROUND_BRACKET, "R30");
    m_rows.push_back(row97);

    CRow row98(RowNames::EQUAL_31_1);
    row98.AddCell(ColumnNames::LOGIC_EXP_A, RowNames::LOGIC_EXP_A_31_2_SUB_33_1);
	row98.AddCell(ColumnNames::LOGIC_EXP_C, RowNames::LOGIC_EXP_C_34_1_SUB_38_1);
	row98.AddCell(ColumnNames::LOGIC_EXP_ARG, RowNames::LOGIC_EXP_ARG_39_1);
	row98.AddCell(ColumnNames::ID, RowNames::ID_65_1);
	row98.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_66_1);
    m_rows.push_back(row98);

    CRow row99(RowNames::LOGIC_EXP_A_31_2_SUB_33_1);
    row99.AddCell(ColumnNames::LOGIC_OP, RowNames::LOGIC_OP_33_2);
    row99.AddCell(ColumnNames::R_ROUND_BRACKET, "R31");
    row99.AddCell(ColumnNames::LESS, RowNames::LESS_36_1);
    row99.AddCell(ColumnNames::OR, RowNames::OR_35_1);
    row99.AddCell(ColumnNames::LESSOREQUAL, RowNames::LESSOREQUAL_37_1);
    m_rows.push_back(row99);

    CRow row100(RowNames::LOGIC_OP_33_2);
    row100.AddCell(ColumnNames::LOGIC_EXP_C, RowNames::LOGIC_EXP_C_33_3_SUB_38_1);
	row100.AddCell(ColumnNames::LOGIC_EXP_ARG, RowNames::LOGIC_EXP_ARG_39_1);
	row100.AddCell(ColumnNames::ID, RowNames::ID_65_1);
	row100.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_66_1);
    m_rows.push_back(row100);

    CRow row101(RowNames::LOGIC_EXP_C_33_3_SUB_38_1);
    row101.AddCell(ColumnNames::R_ROUND_BRACKET, "R33");
    row101.AddCell(ColumnNames::EQUAL, "R33");
	row101.AddCell(ColumnNames::LESSOREQUAL, "R33");
	row101.AddCell(ColumnNames::LESS, "R33");
	row101.AddCell(ColumnNames::OR, "R33");
    row101.AddCell(ColumnNames::AND, RowNames::AND_38_2);
    m_rows.push_back(row101);

    CRow row102(RowNames::LOGIC_EXP_C_34_1_SUB_38_1);
    row102.AddCell(ColumnNames::R_ROUND_BRACKET, "R34");
    row102.AddCell(ColumnNames::EQUAL, "R34");
	row102.AddCell(ColumnNames::LESSOREQUAL, "R34");
	row102.AddCell(ColumnNames::LESS, "R34");
	row102.AddCell(ColumnNames::OR, "R34");
    row102.AddCell(ColumnNames::AND, RowNames::AND_38_2);
    m_rows.push_back(row102);

    CRow row103(RowNames::OR_35_1);
    row103.AddCell(ColumnNames::ID, "R35");
	row103.AddCell(ColumnNames::INT_LITERAL, "R35");
    m_rows.push_back(row103);

    CRow row104(RowNames::LESS_36_1);
    row104.AddCell(ColumnNames::ID, "R36");
	row104.AddCell(ColumnNames::INT_LITERAL, "R36");
    m_rows.push_back(row104);

    CRow row105(RowNames::LESSOREQUAL_37_1);
    row105.AddCell(ColumnNames::ID, "R37");
	row105.AddCell(ColumnNames::INT_LITERAL, "R37");
    m_rows.push_back(row105);

    CRow row106(RowNames::AND_38_2);
	row106.AddCell(ColumnNames::LOGIC_EXP_ARG, RowNames::LOGIC_EXP_ARG_38_3);
	row106.AddCell(ColumnNames::ID, RowNames::ID_65_1);
	row106.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_66_1);
    m_rows.push_back(row106);

	CRow row107(RowNames::LOGIC_EXP_ARG_38_3);
    row107.AddCell(ColumnNames::R_ROUND_BRACKET, "R38");
    row107.AddCell(ColumnNames::EQUAL, "R38");
	row107.AddCell(ColumnNames::LESSOREQUAL, "R38");
	row107.AddCell(ColumnNames::LESS, "R38");
	row107.AddCell(ColumnNames::AND, "R38");
	row107.AddCell(ColumnNames::OR, "R38");
    m_rows.push_back(row107);

	CRow row108(RowNames::LOGIC_EXP_ARG_39_1);
    row108.AddCell(ColumnNames::R_ROUND_BRACKET, "R39");
    row108.AddCell(ColumnNames::EQUAL, "R39");
	row108.AddCell(ColumnNames::LESSOREQUAL, "R39");
	row108.AddCell(ColumnNames::LESS, "R39");
	row108.AddCell(ColumnNames::AND, "R39");
	row108.AddCell(ColumnNames::OR, "R39");
    m_rows.push_back(row108);

    CRow row109(RowNames::OP_A_40_2);
    row109.AddCell(ColumnNames::EXP_A, RowNames::EXP_A_40_3_SUB_45_1);
    row109.AddCell(ColumnNames::EXP_C, RowNames::EXP_C_46_1);
    row109.AddCell(ColumnNames::EXP_D, RowNames::EXP_D_48_1);
    row109.AddCell(ColumnNames::ID, RowNames::ID_50_1);
    row109.AddCell(ColumnNames::THIS, RowNames::THIS_62_1);
    row109.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_49_1);
    row109.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_47_1);
    m_rows.push_back(row109);

    CRow row110(RowNames::EXP_A_40_3_SUB_45_1);
    row110.AddCell(ColumnNames::OP_B, RowNames::OP_B_45_2);
    row110.AddCell(ColumnNames::R_ROUND_BRACKET, "R40");
    row110.AddCell(ColumnNames::SEMICOLON, "R40");
    row110.AddCell(ColumnNames::MUL, RowNames::MUL_59_1);
    row110.AddCell(ColumnNames::DIV, RowNames::DIV_60_1);
    row110.AddCell(ColumnNames::COMMA, "R40");
	row110.AddCell(ColumnNames::ADD, "R40");
	row110.AddCell(ColumnNames::SUB, "R40");
    m_rows.push_back(row110);

    CRow row111(RowNames::EXP_A_41_1_SUB_45_1);
    row111.AddCell(ColumnNames::OP_B, RowNames::OP_B_45_2);
    row111.AddCell(ColumnNames::R_ROUND_BRACKET, "R41");
    row111.AddCell(ColumnNames::SEMICOLON, "R41");
    row111.AddCell(ColumnNames::MUL, RowNames::MUL_59_1);
    row111.AddCell(ColumnNames::DIV, RowNames::DIV_60_1);
    row111.AddCell(ColumnNames::COMMA, "R41");
	row111.AddCell(ColumnNames::ADD, "R41");
	row111.AddCell(ColumnNames::SUB, "R41");
    m_rows.push_back(row111);

    CRow row112(RowNames::SUB_42_1);
    row112.AddCell(ColumnNames::EXP_A, RowNames::EXP_A_42_2_SUB_45_1);
    row112.AddCell(ColumnNames::EXP_C, RowNames::EXP_C_46_1);
    row112.AddCell(ColumnNames::EXP_D, RowNames::EXP_D_48_1);
    row112.AddCell(ColumnNames::ID, RowNames::ID_50_1);
    row112.AddCell(ColumnNames::THIS, RowNames::THIS_62_1);
    row112.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_49_1);
    row112.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_47_1);
    m_rows.push_back(row112);

    CRow row113(RowNames::EXP_A_42_2_SUB_45_1);
    row113.AddCell(ColumnNames::OP_B, RowNames::OP_B_45_2);
    row113.AddCell(ColumnNames::R_ROUND_BRACKET, "R42");
    row113.AddCell(ColumnNames::SEMICOLON, "R42");
    row113.AddCell(ColumnNames::MUL, RowNames::MUL_59_1);
    row113.AddCell(ColumnNames::DIV, RowNames::DIV_60_1);
    row113.AddCell(ColumnNames::COMMA, "R42");
	row113.AddCell(ColumnNames::ADD, "R42");
	row113.AddCell(ColumnNames::SUB, "R42");
    m_rows.push_back(row113);

    CRow row114(RowNames::ADD_43_1);
    row114.AddCell(ColumnNames::ID, "R43");
	row114.AddCell(ColumnNames::THIS, "R43");
    row114.AddCell(ColumnNames::L_ROUND_BRACKET, "R43");
    row114.AddCell(ColumnNames::INT_LITERAL, "R43");
    m_rows.push_back(row114);

    CRow row115(RowNames::SUB_44_1);
    row115.AddCell(ColumnNames::ID, "R44");
	row115.AddCell(ColumnNames::THIS, "R44");
    row115.AddCell(ColumnNames::L_ROUND_BRACKET, "R44");
    row115.AddCell(ColumnNames::INT_LITERAL, "R44");
    m_rows.push_back(row115);

    CRow row116(RowNames::OP_B_45_2);
    row116.AddCell(ColumnNames::EXP_C, RowNames::EXP_C_45_3);
    row116.AddCell(ColumnNames::EXP_D, RowNames::EXP_D_48_1);
    row116.AddCell(ColumnNames::ID, RowNames::ID_50_1);
    row116.AddCell(ColumnNames::THIS, RowNames::THIS_62_1);
    row116.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_49_1);
    row116.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_47_1);
    m_rows.push_back(row116);

    CRow row117(RowNames::EXP_C_45_3);
    row117.AddCell(ColumnNames::R_ROUND_BRACKET, "R45");
    row117.AddCell(ColumnNames::SEMICOLON, "R45");
    row117.AddCell(ColumnNames::COMMA, "R45");
	row117.AddCell(ColumnNames::ADD, "R45");
	row117.AddCell(ColumnNames::SUB, "R45");
	row117.AddCell(ColumnNames::MUL, "R45");
	row117.AddCell(ColumnNames::DIV, "R45");
    m_rows.push_back(row117);

    CRow row118(RowNames::EXP_C_46_1);
    row118.AddCell(ColumnNames::R_ROUND_BRACKET, "R46");
    row118.AddCell(ColumnNames::SEMICOLON, "R46");
    row118.AddCell(ColumnNames::COMMA, "R46");
	row118.AddCell(ColumnNames::ADD, "R46");
	row118.AddCell(ColumnNames::SUB, "R46");
	row118.AddCell(ColumnNames::MUL, "R46");
	row118.AddCell(ColumnNames::DIV, "R46");
    m_rows.push_back(row118);

    CRow row119(RowNames::MUL_59_1);
    row119.AddCell(ColumnNames::ID, "R59");
	row119.AddCell(ColumnNames::THIS, "R59");
    row119.AddCell(ColumnNames::L_ROUND_BRACKET, "R59");
    row119.AddCell(ColumnNames::INT_LITERAL, "R59");
    m_rows.push_back(row119);

    CRow row120(RowNames::DIV_60_1);
    row120.AddCell(ColumnNames::ID, "R60");
	row120.AddCell(ColumnNames::THIS, "R60");
    row120.AddCell(ColumnNames::L_ROUND_BRACKET, "R60");
    row120.AddCell(ColumnNames::INT_LITERAL, "R60");
    m_rows.push_back(row120);

    CRow row121(RowNames::INT_LITERAL_47_1);
    row121.AddCell(ColumnNames::R_ROUND_BRACKET, "R47");
    row121.AddCell(ColumnNames::SEMICOLON, "R47");
    row121.AddCell(ColumnNames::COMMA, "R47");
	row121.AddCell(ColumnNames::ADD, "R47");
	row121.AddCell(ColumnNames::SUB, "R47");
	row121.AddCell(ColumnNames::MUL, "R47");
	row121.AddCell(ColumnNames::DIV, "R47");
    m_rows.push_back(row121);

    CRow row122(RowNames::EXP_D_48_1);
    row122.AddCell(ColumnNames::R_ROUND_BRACKET, "R48");
    row122.AddCell(ColumnNames::SEMICOLON, "R48");
    row122.AddCell(ColumnNames::COMMA, "R48");
	row122.AddCell(ColumnNames::ADD, "R48");
	row122.AddCell(ColumnNames::SUB, "R48");
	row122.AddCell(ColumnNames::MUL, "R48");
	row122.AddCell(ColumnNames::DIV, "R48");
    m_rows.push_back(row122);

    CRow row123(RowNames::L_ROUND_BRACKET_49_1);
    row123.AddCell(ColumnNames::EXP, RowNames::EXP_49_2_SUB_40_1);
    row123.AddCell(ColumnNames::EXP_A, RowNames::EXP_A_41_1_SUB_45_1);
    row123.AddCell(ColumnNames::EXP_C, RowNames::EXP_C_46_1);
    row123.AddCell(ColumnNames::EXP_D, RowNames::EXP_D_48_1);
    row123.AddCell(ColumnNames::ID, RowNames::ID_50_1);
    row123.AddCell(ColumnNames::THIS, RowNames::THIS_62_1);
    row123.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_49_1);
    row123.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_47_1);
    row123.AddCell(ColumnNames::SUB, RowNames::SUB_42_1);
    m_rows.push_back(row123);

    CRow row124(RowNames::EXP_49_2_SUB_40_1);
    row124.AddCell(ColumnNames::OP_A, RowNames::OP_A_40_2);
    row124.AddCell(ColumnNames::R_ROUND_BRACKET, RowNames::R_ROUND_BRACKET_49_3);
    row124.AddCell(ColumnNames::SUB, RowNames::SUB_44_1);
    row124.AddCell(ColumnNames::ADD, RowNames::ADD_43_1);
    m_rows.push_back(row124);

    CRow row125(RowNames::R_ROUND_BRACKET_49_3);
    row125.AddCell(ColumnNames::R_ROUND_BRACKET, "R49");
    row125.AddCell(ColumnNames::SEMICOLON, "R49");
    row125.AddCell(ColumnNames::COMMA, "R49");
	row125.AddCell(ColumnNames::ADD, "R49");
	row125.AddCell(ColumnNames::SUB, "R49");
	row125.AddCell(ColumnNames::MUL, "R49");
	row125.AddCell(ColumnNames::DIV, "R49");
    m_rows.push_back(row125);

    CRow row126(RowNames::ID_50_1);
    row126.AddCell(ColumnNames::CALL_METHOD, RowNames::CALL_METHOD_50_2);
    row126.AddCell(ColumnNames::R_ROUND_BRACKET, "R52");
    row126.AddCell(ColumnNames::SEMICOLON, "R52");
    row126.AddCell(ColumnNames::POINT, RowNames::POINT_51_1);
    row126.AddCell(ColumnNames::COMMA, "R52");
	row126.AddCell(ColumnNames::ADD, "R52");
	row126.AddCell(ColumnNames::SUB, "R52");
	row126.AddCell(ColumnNames::MUL, "R52");
	row126.AddCell(ColumnNames::DIV, "R52");
    m_rows.push_back(row126);

    CRow row127(RowNames::CALL_METHOD_50_2);
    row127.AddCell(ColumnNames::R_ROUND_BRACKET, "R50");
    row127.AddCell(ColumnNames::SEMICOLON, "R50");
    row127.AddCell(ColumnNames::COMMA, "R50");
	row127.AddCell(ColumnNames::ADD, "R50");
	row127.AddCell(ColumnNames::SUB, "R50");
	row127.AddCell(ColumnNames::MUL, "R50");
	row127.AddCell(ColumnNames::DIV, "R50");
    m_rows.push_back(row127);

    CRow row128(RowNames::POINT_51_1);
    row128.AddCell(ColumnNames::ID, RowNames::ID_51_2);
    m_rows.push_back(row128);

    CRow row129(RowNames::ID_51_2);
    row129.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_51_3);
    m_rows.push_back(row129);

    CRow row130(RowNames::L_ROUND_BRACKET_51_3);
    row130.AddCell(ColumnNames::ARG, RowNames::ARG_53_1);
    row130.AddCell(ColumnNames::EXP_LIST, RowNames::EXP_LIST_51_4);
	row130.AddCell(ColumnNames::ID, RowNames::ID_63_1);
    row130.AddCell(ColumnNames::R_ROUND_BRACKET, "R54");
	row130.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_64_1);
    m_rows.push_back(row130);

    CRow row131(RowNames::EXP_LIST_51_4);
    row131.AddCell(ColumnNames::R_ROUND_BRACKET, RowNames::R_ROUND_BRACKET_51_5);
    m_rows.push_back(row131);

    CRow row132(RowNames::R_ROUND_BRACKET_51_5);
    row132.AddCell(ColumnNames::R_ROUND_BRACKET, "R51");
    row132.AddCell(ColumnNames::SEMICOLON, "R51");
    row132.AddCell(ColumnNames::COMMA, "R51");
	row132.AddCell(ColumnNames::ADD, "R51");
	row132.AddCell(ColumnNames::SUB, "R51");
	row132.AddCell(ColumnNames::MUL, "R51");
	row132.AddCell(ColumnNames::DIV, "R51");
    m_rows.push_back(row132);

	CRow row133(RowNames::ARG_53_1);
    row133.AddCell(ColumnNames::EXP_REST, RowNames::EXP_REST_53_2);
    row133.AddCell(ColumnNames::R_ROUND_BRACKET, "R56");
    row133.AddCell(ColumnNames::COMMA, RowNames::COMMA_55_1);
    m_rows.push_back(row133);

    CRow row134(RowNames::EXP_REST_53_2);
    row134.AddCell(ColumnNames::R_ROUND_BRACKET, "R53");
    m_rows.push_back(row134);

    CRow row135(RowNames::COMMA_55_1);
	row135.AddCell(ColumnNames::ARG, RowNames::ARG_55_2);
	row135.AddCell(ColumnNames::ID, RowNames::ID_63_1);
	row135.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_64_1);
    m_rows.push_back(row135);

    CRow row136(RowNames::ARG_55_2);
    row136.AddCell(ColumnNames::EXP_REST, RowNames::EXP_REST_55_3);
    row136.AddCell(ColumnNames::R_ROUND_BRACKET, "R56");
    row136.AddCell(ColumnNames::COMMA, RowNames::COMMA_55_1);
    m_rows.push_back(row136);

    CRow row137(RowNames::EXP_REST_55_3);
    row137.AddCell(ColumnNames::R_ROUND_BRACKET, "R55");
    m_rows.push_back(row137);

    CRow row138(RowNames::NOT_61_1);
    row138.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_61_2);
    m_rows.push_back(row138);

    CRow row139(RowNames::L_ROUND_BRACKET_61_2);
    row139.AddCell(ColumnNames::LOGIC_EXP, RowNames::LOGIC_EXP_61_3);
    row139.AddCell(ColumnNames::LOGIC_EXP_A, RowNames::LOGIC_EXP_A_30_1_SUB_33_1);
    row139.AddCell(ColumnNames::LOGIC_EXP_C, RowNames::LOGIC_EXP_C_34_1_SUB_38_1);
	row139.AddCell(ColumnNames::LOGIC_EXP_ARG, RowNames::LOGIC_EXP_ARG_39_1);
	row139.AddCell(ColumnNames::ID, RowNames::ID_65_1);
	row139.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_66_1);
    m_rows.push_back(row139);

    CRow row140(RowNames::LOGIC_EXP_61_3);
    row140.AddCell(ColumnNames::R_ROUND_BRACKET, RowNames::R_ROUND_BRACKET_61_4);
    m_rows.push_back(row140);

    CRow row141(RowNames::R_ROUND_BRACKET_61_4);
    row141.AddCell(ColumnNames::R_ROUND_BRACKET, "R61");
    m_rows.push_back(row141);

    CRow row142(RowNames::THIS_62_1);
    row142.AddCell(ColumnNames::POINT, RowNames::POINT_62_2);
    m_rows.push_back(row142);

    CRow row143(RowNames::POINT_62_2);
    row143.AddCell(ColumnNames::ID, RowNames::ID_62_3);
    m_rows.push_back(row143);

    CRow row144(RowNames::ID_62_3);
    row144.AddCell(ColumnNames::L_ROUND_BRACKET, RowNames::L_ROUND_BRACKET_62_4);
    m_rows.push_back(row144);

    CRow row145(RowNames::L_ROUND_BRACKET_62_4);
    row145.AddCell(ColumnNames::ARG, RowNames::ARG_53_1);
    row145.AddCell(ColumnNames::EXP_LIST, RowNames::EXP_LIST_62_5);
	row145.AddCell(ColumnNames::ID, RowNames::ID_63_1);
    row145.AddCell(ColumnNames::R_ROUND_BRACKET, "R54");
	row145.AddCell(ColumnNames::INT_LITERAL, RowNames::INT_LITERAL_64_1);
    m_rows.push_back(row145);

    CRow row146(RowNames::EXP_LIST_62_5);
    row146.AddCell(ColumnNames::R_ROUND_BRACKET, RowNames::R_ROUND_BRACKET_62_6);
    m_rows.push_back(row146);

    CRow row147(RowNames::R_ROUND_BRACKET_62_6);
    row147.AddCell(ColumnNames::R_ROUND_BRACKET, "R62");
    row147.AddCell(ColumnNames::SEMICOLON, "R62");
    row147.AddCell(ColumnNames::COMMA, "R62");
	row147.AddCell(ColumnNames::ADD, "R62");
	row147.AddCell(ColumnNames::SUB, "R62");
	row147.AddCell(ColumnNames::MUL, "R62");
	row147.AddCell(ColumnNames::DIV, "R62");
    m_rows.push_back(row147);

	CRow row148(RowNames::ID_63_1);
    row148.AddCell(ColumnNames::R_ROUND_BRACKET, "R63");
	row148.AddCell(ColumnNames::COMMA, "R63");
	row148.AddCell(ColumnNames::SEMICOLON, "R63");
    m_rows.push_back(row148);

	CRow row149(RowNames::INT_LITERAL_64_1);
    row149.AddCell(ColumnNames::R_ROUND_BRACKET, "R64");
	row149.AddCell(ColumnNames::COMMA, "R64");
	row149.AddCell(ColumnNames::SEMICOLON, "R64");
    m_rows.push_back(row149);

	CRow row150(RowNames::ID_65_1);
    row150.AddCell(ColumnNames::R_ROUND_BRACKET, "R65");
    row150.AddCell(ColumnNames::EQUAL, "R65");
	row150.AddCell(ColumnNames::LESSOREQUAL, "R65");
	row150.AddCell(ColumnNames::LESS, "R65");
	row150.AddCell(ColumnNames::AND, "R65");
	row150.AddCell(ColumnNames::OR, "R65");
    m_rows.push_back(row150);

	CRow row151(RowNames::INT_LITERAL_66_1);
    row151.AddCell(ColumnNames::R_ROUND_BRACKET, "R66");
    row151.AddCell(ColumnNames::EQUAL, "R66");
	row151.AddCell(ColumnNames::LESSOREQUAL, "R66");
	row151.AddCell(ColumnNames::LESS, "R66");
	row151.AddCell(ColumnNames::AND, "R66");
	row151.AddCell(ColumnNames::OR, "R66");
    m_rows.push_back(row151);
}
